Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Структура даних СТЕК

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2013
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Структури даних та алгоритми

Частина тексту файла

Міністерство освіти і науки, молоді та спорту України Національний університет “Львівська політехніка” Кафедра ЕОМ Звіт з лабораторної роботи № 3 на тему: "Структура даних СТЕК" з дисципліни: " Програмування. Частина III. Структури даних та алгоритми " Вибір варіанту: № варіанта = [(день народження) + (місяць народження) + (ASCII–код першої літери прізвища – велика латинська літера) ] % 20 + 1 (23 + 8 + 70 ) % 20 + 1 = 2 Львів – 2013 Мета роботи: Вивчення фундаментальної абстрактної структури даних стек. Набуття практичних навичок побудови стека, дослідження динаміки його вмісту та використання стеків для розв'язання прикладних задач. Постановка задачі: 2. Реалізувати стек, у якому до опису стека додано змінну EMPTY замість функції empty(). Переписати основні функції роботи зі стеком з врахуванням цієї змінної. Після обробки всієї заданої вхідної послідовності перевірити, чи елементи стека будуть відсортовані (по спаданню або по зростанню). Код програми: #include <string> #include<iostream> using namespace std; template<class T> class Stack { public: Stack():tail(0), head(0) {} bool EMPTY; ~Stack() {while(head) {tail=head->next; delete head; head=tail;}} void push(T val) { Node* Temp; Temp=new Node; Temp->elem=val; if(tail==0) { tail=Temp; } else { Temp->next=tail; tail=Temp; } } T top() { if(tail==0) { throw std::string("Stack is empty!"); EMPTY=true; } return tail->elem; } void pop() { if(EMPTY==true) { throw std::string("Stack is empty!"); } Node* delptr=tail; tail=tail->next; delete delptr; } void print() { if(EMPTY==0) { throw std::string("Stack is empty!"); } for(Node* ptr=tail; ptr!=0; ptr=ptr->next) { std::cout<<ptr->elem<<' '; } std::cout<<'\n'; } private: struct Node { Node():elem(0), next(0) { } Node* next; T elem; }; Node* head; Node* tail; }; /*__________________________________________________________*/ int main() { int i=0; const int sizemass=6; cout<<"Eter mass:\n"; int r[sizemass]; for(i=0;i<sizemass;i++) cin>>r[i]; Stack<int> St; for(int i=0;i<sizemass;i++) { if(r[i]>=0) St.push(r[i]); else St.pop(); } try { while (St.top() != 0) { std::cout<<"elements in stack: "; St.print(); std::cout<<"element pop: "; std::cout<<St.top()<<'\n'<<"Countdown: "; St.pop(); St.print(); } } catch(const std::string& e) { std::cout<<e<<'\n'; } return 0; } Результат виконання програми:  Рис1. Ескіз вікна з результатом виконання програми Висновок: На цій лабораторній роботі я ознайомився з cструктурою даних стек. Дослідив принципи і методи роботи зі стеком.
Антиботан аватар за замовчуванням

23.12.2013 22:12

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини